package com.tanhua.utils;

import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;

import java.math.BigDecimal;
import java.util.Date;

public class ComputeUtil {
    /**
     * 计算环比
     *
     * @param current 本期计数
     * @param last    上一期计数
     * @return 环比
     */
    public static BigDecimal computeRate(Long current, Long last) {
        BigDecimal result;
        if (last == 0) {
            // 当上一期计数为零时，此时环比增长为倍数增长
            result = new BigDecimal((current - last) * 100);
        } else {
            result = BigDecimal.valueOf((current - last) * 100).divide(BigDecimal.valueOf(last), 2, BigDecimal.ROUND_HALF_DOWN);
        }
        return result;
    }

    /**
     * 计算日期偏移
     * @param date 日期
     * @param offset 偏移天数
     * @return 偏移后的日期
     */
    public static String offsetDay(Date date, int offset){
        return DateUtil.offsetDay(date, offset).toDateStr();
    }

    /**
     * 计算日期的年数偏移
     * @param date 日期
     * @param offset 偏移年数
     * @return 偏移后的日期
     */
    public static String offsetYear(Date date, int offset){
        return DateUtil.offset(date, DateField.YEAR, offset).toDateStr();
    }
}